GradleFiles project scan should adhere to global root settings#9263
Merged
Conversation
Contributor
Author
|
Hi @lkishalmi. Please review this when you get a chance. Thank you. |
Contributor
matthiasblaesing
left a comment
There was a problem hiding this comment.
In general makes sense to me. I left a few inline comments.
Contributor
Author
|
Thank you @matthiasblaesing for your review and feedback. |
af01fc0 to
53c3535
Compare
Contributor
Author
|
I've rebased this to the current master which includes post NB30 changes. |
matthiasblaesing
approved these changes
May 29, 2026
Contributor
matthiasblaesing
left a comment
There was a problem hiding this comment.
Looks sane to me. Thank you.
Contributor
|
@sid-srini would you please squash the commits? |
Fixed GradleFiles scan for project files to honour the global scan root settings, if any. - Similar to that in projectapi SimpleFileOwnerQueryImpl. - GradleFiles needs to necessarily traverse the parent directory hierarchy to find the root project settings. - Further, the project detection needs to give precedence to maven projects also defined for the same directory, which has a similar hierarchy traversal requirement introduced in apache#1280. - Note that future changes in logic should be done in both the classes. Fixed GradleFiles to find parentScript for kotlin script. - Added a unit test case for it in GradleFilesTest. Fixed SimpleFileOwnerQueryImplementation to check for scan root dirs without allowing sibling dirs with the same name prefix. - Example: if scan root = "/tmp/app", - then "/tmp/application" should not be allowed for scan; - while "/tmp/app" and "/tmp/app/src" should remain allowed. Fixed the SimpleFileOwnerQueryImplementation.separatePaths() method to not trim() the split paths and only ignore completely blank paths. Fixed GradleFilesTest for File comparison on MacOS. - Needed due to the presence of "/private" prefix in the canonical path of unix temp folders. Unit tests are split into 2 classes: - GradleFilesWithScanRootTest only runs the GradleFilesTest with the project limitScanRoot and forbiddenFolders properties set. - GradleFilesScanRootTest contains only the functionality of the scan-root and forbidden folders specifically. - Only a single JUnit @test can be used here since the static initialization in @before must be done once only. - This means the test root folder must not change between tests. - The actual gradle project is now a grandchild in the tree of the test root dir. Signed-off-by: Siddharth Srinivasan <siddharth.srinivasan@oracle.com>
53c3535 to
754446c
Compare
Contributor
Author
|
Thank you @matthiasblaesing for your review.
I've pushed the squashed commit now. |
Contributor
|
Thanks - Merging |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixed
GradleFilesscan for project files to honour the global scan root settings, if any.SimpleFileOwnerQueryImpl.GradleFilesneeds to necessarily traverse the parent directory hierarchy to find the root project settings.Fixed
GradleFilesto findparentScriptfor kotlin script.GradleFilesTest.Fixed
SimpleFileOwnerQueryImplementationto check for scan root dirs without allowing sibling dirs with the same name prefix.Fixed
GradleFilesTestfor File comparison on MacOS.